﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;

namespace vudu.PaginasWeb.G9Reporte
{
    public partial class ReporteMostrarEvaluacion : System.Web.UI.Page
    {
        public static string seccionConsultada;
        public static string materiaConsultada;

        /// <summary>
        /// Se carga la pagina
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            //se valida que sea un profesor sino se devuelve a la pagina de inicio
            string miRol = (string)Session["rol"];

            if (miRol != "Profesor")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

            if (!Page.IsPostBack)
            {
                //se carga la informacion del profesor
                Profesor miProfe = new Profesor();
                miProfe = (Profesor)Session["Usuario"];
                Label1.Text = "Profesor(a): " + miProfe.Nombre + " " + miProfe.Apellido;
                Label2.Text = ReporteSeleccion.nombreMateria;
                materiaConsultada = ReporteSeleccion.materiaSeleccionada;
                seccionConsultada = ReporteSeleccion.seccionSeleccionada;
                LlenarCabecerasTabla();
                CargarEvaluacion();
            }
        }

        /// <summary>
        /// Se llenan los encabezados de la tabla
        /// </summary>
        public void LlenarCabecerasTabla()
        {
            //se crea un nuevo registro para la tabla
            TableRow registroTabla = new TableRow();
            TablaHorario.Rows.Add(registroTabla);

            //se crea una celda para esta tabla
            TableCell celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.Font.Bold = true;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);

            //se crean las celdas y los encabezados
            System.Web.UI.WebControls.Label labelCabecera = new Label();
            labelCabecera.Text = "Nombre";
            celdaTabla.Controls.Add(labelCabecera);

            celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.Font.Bold = true;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Tipo Evaluacion";
            celdaTabla.Controls.Add(labelCabecera);

            celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.Font.Bold = true;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Porcentaje";
            celdaTabla.Controls.Add(labelCabecera);

            celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.Font.Bold = true;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Fecha";
            celdaTabla.Controls.Add(labelCabecera);

        }

        /// <summary>
        /// Se carga la informacion de cada una de las evaluaciones de la seccion
        /// </summary>
        public void CargarEvaluacion()
        {
            List<Evaluacion> evaluacion = new List<Evaluacion>();
            Logica.Clases.Reporte reporte = new Logica.Clases.Reporte();
            evaluacion = reporte.ConsultarNotas(int.Parse(seccionConsultada));
            int i = 0;
            Label5.Text = "";

            if (evaluacion.Count.Equals(0))
            {
                Label5.Text = "No hay Evaluaciónes asignadas";
                Label5.ForeColor = System.Drawing.Color.Red;
                TablaHorario.Visible = false;
            }
            //se carga en la tabla cada una de las evaluaciones
            while (i < evaluacion.Count)
            {   
                TableRow registroTabla = new TableRow();
                TablaHorario.Rows.Add(registroTabla);

                TableCell celdaTabla = new TableCell();
                registroTabla.Cells.Add(celdaTabla);
                celdaTabla.HorizontalAlign = HorizontalAlign.Center;
                System.Web.UI.WebControls.Label labelRegistro = new Label();
                labelRegistro.Text = Convert.ToString(evaluacion[i].Nombre);
                celdaTabla.Controls.Add(labelRegistro);
           
                TableCell celdaTabla2 = new TableCell();
                registroTabla.Cells.Add(celdaTabla2);
                celdaTabla2.HorizontalAlign = HorizontalAlign.Center;
                System.Web.UI.WebControls.Label labelRegistro2 = new Label();
                labelRegistro2.Text = Convert.ToString(evaluacion[i].TipoEvaluacion);
                celdaTabla2.Controls.Add(labelRegistro2);

                TableCell celdaTabla3 = new TableCell();
                registroTabla.Cells.Add(celdaTabla3);
                celdaTabla3.HorizontalAlign = HorizontalAlign.Center;
                System.Web.UI.WebControls.Label labelRegistro3 = new Label();
                labelRegistro3.Text = Convert.ToString(evaluacion[i].Porcentaje)+" %";
                celdaTabla3.Controls.Add(labelRegistro3);

                TableCell celdaTabla4 = new TableCell();
                registroTabla.Cells.Add(celdaTabla4);
                celdaTabla4.HorizontalAlign = HorizontalAlign.Center;
                System.Web.UI.WebControls.Label labelRegistro4 = new Label();
                labelRegistro4.Text = Convert.ToString(evaluacion[i].FechaEvaluacion).Substring(0,10);
                celdaTabla4.Controls.Add(labelRegistro4);
                i++; 
            }

        }

        /// <summary>
        /// Se imprime la informacion de la pagina
        /// </summary>
        protected void Button1_Click(object sender, EventArgs e)
        {
            Session["ctrl"] = Panel1;
            LlenarCabecerasTabla();
            CargarEvaluacion();
            ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('ImprimirReporte.aspx','PrintMe','height=500px,width=500px,scrollbars=1');</script>");

        }

        /// <summary>
        /// Se devuelve a la pagina de seleccion de reporte
        /// </summary>
        protected void Button3_Click(object sender, EventArgs e)
        {
            Response.Redirect("ReporteSeleccion.aspx");

        } 
    }
   
}